//类型加中括号
// let arr: number[] = [123]
//这样会报错定义了数字类型出现字符串是不允许的
// let arr:number[] = [1,2,3,'1']
//操作方法添加也是不允许的
// let arr: number[] = [1, 2, 3]
// arr.unshift('1')

// var arr: number[] = [1, 2, 3] //数字类型的数组
// var arr2: string[] = ['1', '2'] //字符串类型的数组
// var arr3: any[] = [1, '2', true] //任意类型的数组

/* 数组泛型 规则 Array<类型> */
let arr: Array<number> = [1, 2, 3, 4, 5]

// 多维数组
let data: number[][] = [
  [1, 2],
  [3, 4],
]

// arguments类数组
// function Arr(...args: any): void {
//   console.log(arguments)
//   //错误的arguments 是类数组不能这样定义
//   let arr: number[] = arguments
// }
// Arr(111, 222, 333)

function Arr(...args: any): void {
  console.log(arguments)
  /* ts内置对象IArguments 定义 */
  let arr: IArguments = arguments
}
Arr(111, 222, 333)

/* 其中 IArguments 是 TypeScript 中定义好了的类型，它实际上就是： */
// interface IArguments {
//   [index: number]: any
//   length: number
//   callee: Function
// }

let list: any[] = ['test', 1, [], { a: 1 }]
